package com.ly.heart.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

@Data
@ApiModel ( "选单为应付单的返回对象，提供给付款单、冲红选单使用" )
@Accessors ( chain = true )
public class KingInvoiceReceivableMenuVo {

    @ApiModelProperty ( "源单id,应收单Id" )
    private String sourceId;

    @ApiModelProperty ( "源单Code,应收单Code" )
    private String sourceCode;

    @ApiModelProperty ( "单据类型编码,接口" )
    private String docTypeCode;

    @ApiModelProperty ( "单据类型名称" )
    private String docTypeName;

    @ApiModelProperty ( "结算方式" )
    private String settlementTypeName;

    @ApiModelProperty ( "客户id，接口" )
    private String customerId;

    @ApiModelProperty ( "客户" )
    private String customerName;

    @ApiModelProperty ( "订货方" )
    private String orderCustomerName;

    @ApiModelProperty ( "收货方" )
    private String receivingCustomerName;

    @ApiModelProperty ( "付款方" )
    private String payCustomerName;

    @ApiModelProperty ( "销售员,员工接口" )
    private String saleUserId;

    @ApiModelProperty ( "销售员" )
    private String saleUserName;

    @ApiModelProperty ( "立账类型;1:业务应收" )
    private Integer accountType;

    @ApiModelProperty ( "单据编号" )
    private String docNo;

    @ApiModelProperty ( "币别，接口" )
    private String baseCurrencyId;

    @ApiModelProperty ( "币别，接口" )
    private String baseCurrencyName;

    @ApiModelProperty ( "结算组织Id,接口" )
    private String settlementDeptId;

    @ApiModelProperty ( "结算组织Id,接口" )
    private String settlementDeptName;

    @ApiModelProperty ( "业务时间" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    private Date bizTime;

    @ApiModelProperty ( "价税合计=明细的价税合计" )
    private String totalTaxAmount;

    @ApiModelProperty ( "不含税金额" )
    private String notTaxAmount;

    @ApiModelProperty ( "税额" )
    private String rateAmount;

    @ApiModelProperty ( "汇率" )
    private String rate;

    @ApiModelProperty ( "价税合计本位币" )
    private String totalTaxPriceCurrency;

    @ApiModelProperty ( "税额本位币" )
    private String rateAmountCurrency;

    @ApiModelProperty ( "不含税金额本位币" )
    private String notTaxAmountCurrency;

    @ApiModelProperty ( "到期日" )
    @JsonFormat ( pattern = "yyyy-MM-dd" )
    private Date dueTime;

    @ApiModelProperty ( "收款条件id，走接口" )
    private String receiptConditionId;

    @ApiModelProperty ( "收款条件id，走接口" )
    private String state;

    @ApiModelProperty ( "单据状态;金蝶数据统一单据数据状态；\n" +
            "Z：暂存\n" +
            "A：创建\n" +
            "B：审核中\n" +
            "C：已审核\n" +
            "D：重新审核\n" +
            "E：已冲红;前端不处理该字段" )
    private String status;

    @ApiModelProperty ( "销售部门，接口" )
    private String saleDeptId;

    @ApiModelProperty ( "销售部门，接口" )
    private String saleDeptName;

    @ApiModelProperty ( "整单折扣金额=明细的折扣金额" )
    private String discountAmount;

    @ApiModelProperty ( "按费用项目生成计划;1:是;2:否" )
    private Boolean isFee;

    @ApiModelProperty ( "价外税;1:是;2:否" )
    private Boolean isExtraPriceTax;

    @ApiModelProperty ( "按含税单价录入;1:是;2:否" )
    private Boolean isIncludeTaxPrice;

    //-----------明细行数据
    @ApiModelProperty ( "物料" )
    private String materialCode;

    @ApiModelProperty ( "明细行源单类型" )
    private String detailSourceDocType;

    @ApiModelProperty ( "明细行源单的明细Id" )
    private String sourceMaterialDetailId;

    @ApiModelProperty ( "明细行数量" )
    private String detailNum;

    @ApiModelProperty ( "明细行不含税金额" )
    private String detailNotTaxAmount;

    @ApiModelProperty ( "明细行折扣额" )
    private String detailDiscountAmount;

    @ApiModelProperty ( "明细行价税合计" )
    private String detailTotalTaxPrice;

    @ApiModelProperty ( "明细行税额" )
    private String detailRateAmount;

    @ApiModelProperty ( "明细行税额本位币" )
    private String detailRateAmountCurrency;

    @ApiModelProperty ( "明细行价税合计本位币" )
    private String detailTotalTaxPriceCurrency;

    @ApiModelProperty ( "明细行金额本位币" )
    private String detailNotTaxAmountCurrency;

    @ApiModelProperty ( "明细行出库单编码" )
    private String detailInventoryCode;

    @ApiModelProperty ( "创建人姓名" )
    private String createName;

}
